マストドン(Mastodon)のインスタンスを AWS でホストしてみた
マストドンが盛り上がってるらしい?
コンバンハ、千葉(幸)です。
理由は特に知らないのですが、何やら最近マストドンが盛り上がっているらしいですね。理由は知らないのですが。
そんな中、マストドンのインスタンスを AWS でホストする、という試みを見つけました。
単純にホストするだけであれば EC2 インスタンス 1 台でもできるそうですが、なるべくマネージドサービスを使用する構成で考えられているようです。マストドン触ったことないけどやってみるか!ということで入門してみました。
今回作成するマストドンインスタンスの構成
構成、手順、必要となる CloudFormation テンプテートについては以下にまとめられています。
主要なリソースを表したアーキテクチャは以下の通りです。
(画像は上記ページより引用)
ここでは省略されていますが、以下のリソースも一緒にデプロイされます。詳細は末尾に記載します。
- VPC
- 各種 CloudWatch アラーム
- Route53 ホストゾーン
- ACM 証明書
- SNS トピック
- Lambda 関数
- AWS KMS キー
- などなど
わたしは触ってすぐ消したのでコストはあまり意識しませんでしたが、おおまかなコスト感も記載されています。1~50 名程度の小規模な利用で月額 60 USD 程度、ということでした。実際に運用を検討される方は改めて試算し直すことをおすすめします。
Service | Configuration | Monthly Costs (USD) |
---|---|---|
ECS + Fargate | 3 Spot Tasks x (0.25 CPU + 0.5 GB) | $11.56 |
RDS for Postgres | t4g.micro (Multi-AZ) | $23.61 |
ElastiCache for Redis | t4g.micro (Single-AZ) | $11.52 |
ALB | Load Balancer Hours | $16.20 |
S3 | 25 GB + requests | $0.58 |
Route 53 | Hosted Zone | $0.50 |
Total | $63.97 |
▲これはあくまで例であり、リージョンや使用量によって変わることに注意してください
マストドンインスタンス作成の事前準備
基本的には用意された CloudFormation テンプレートをデプロイするだけなのですが、先行して行っておく準備があります。
- ドメインの確保
- ローカルの Docker 実行環境によるシークレットキー等の生成
- SES のサンドボックスからの移動
ドメインの確保
ここで決めたドメイン名でマストドンに接続することになります。
今回わたしは Freenom というサイトでchibayuki.tk
というドメインを取得しておきました。詳細な手順は以下エントリが参考になります。
ローカルの Docker 実行環境によるシークレットキー等の生成
Docker コンテナをローカルで実行しシークレットキーやキーを生成しておきます。これが CloudFormation スタック作成時にパラメータとして必要になります。
今回は AWS Cloud9 環境で操作を行いました。
まずは docker run を実行。ローカルには該当するイメージがないのでリモートからプルされてきます。
$ docker run -it tootsuite/mastodon:latest sh Unable to find image 'tootsuite/mastodon:latest' locally latest: Pulling from tootsuite/mastodon eaead16dc43b: Pull complete 003c996cdc07: Pull complete e81bb6ec9daa: Pull complete 27b926f2cb64: Pull complete 0fb313e2eed1: Pull complete 74c315f0f4a4: Pull complete 7717fbaa7d07: Pull complete 92451a4e1c05: Extracting [=====================================> ] 122.6MB/163.792451a4e1c05: Pull complete e707434f5b7e: Pull complete 4f4fb700ef54: Pull complete Digest: sha256:ab6a6f22cda097ff15ba832db177fdf9125d18bb8bd2ec1468822b96a8356926 Status: Downloaded newer image for tootsuite/mastodon:latest
各種キーを生成します。ここで生成した内容をどこかに控えておいてください。
# Generate SECRET_KEY_BASE $ bundle exec rake secret 61eb113d47(略) # Generate OTP_SECRET $ bundle exec rake secret b57dbb0d45c(略) # Generate VAPID_PRIVATE_KEY and VAPID_PUBLIC_KEY $ bundle exec rake mastodon:webpush:generate_vapid_key VAPID_PRIVATE_KEY=LbK_BuFk-tN(略) VAPID_PUBLIC_KEY=BK_JVeBmBWJfRptYD2Rr(略)
SES のサンドボックスからの移動
今回の構成ではマストドンからのメール送信は Amazon SES を通じて行われるため、使用するリージョンの SES がサンドボックスの場合には緩和の申請を出しておきます。
サンドボックスの場合、ダッシュボードで以下のような表示がされています。
以下のようなフォームを埋めて送信することでサンドボックスから移動できます。
24時間以内に応答があるとのことです。詳細は以下ページを参照してください。
わたしは東京リージョンでは元々緩和済みであったため、特に追加の手順なく先に進みました。サンドボックス状態であっても検証済みの宛先へのメール送信はできるので、ひとまず試す、ということであればサンドボックスからの移動は必須ではないはずです。
マストドンインスタンス用 CloudFormation スタックの作成
GitHub の README に書かれているリンクからスタックの作成画面に遷移します。今後もテンプレートのバージョンが新しくなっていくことが予想されますが、わたしが試した際には以下のリンクでした。
https://console.aws.amazon.com/cloudformation/home?#/stacks/create/review?templateURL=https://s3.eu-central-1.amazonaws.com/mastodon-on-aws-cloudformation/v0.7.0/quickstart.yml&stackName=mastodon-on-aws
指定するパラメータは以下の通りです。Mastodon config の値は先ほど生成したものを指定します。
パラメータ | 必須 | 概要 |
---|---|---|
AlertingEmail | いいえ | アラーム・イベントの通知先メールアドレス |
AlertingHttpsEndpoint | いいえ | アラーム・イベントの通知先HTTPSエンドポイント |
DomainName | はい | マストドンインスタンスのドメイン名 |
OtpSecret | はい | Mastodon config OTP_SECRET |
SecretKeyBase | はい | Mastodon config SECRET_KEY_BASE |
Spot | はい | Fargate Spotの利用有無 |
VapidPrivateKey | はい | Mastodon config VAPID_PRIVATE_KEY |
VapidPublicKey | はい | Mastodon config VAPID_PUBLIC_KEY |
画面下部のチェックを入れ、スタックの作成を実行します。
わたしの環境では 25 分弱で作成が完了しました。
付随して行う設定あれこれ
ホストゾーンの設定
スタックの作成途中にホストゾーンのネームサーバの設定を行いました。
CloudFormation によって、パラメータで指定したドメイン名のホストゾーンが作成されます。NS レコードに登録されたネームサーバを控えておきます。
今回は Freedom でドメインを取得しているので、その管理画面でネームサーバの更新を行います。
これで今回作成されたホストゾーンが権威 DNS サーバとして機能できるようになりました。
なお、参考までにホストゾーンには以下のレコードが追加されています。
- インターネット向け ALB を指すエイリアスレコード
- ACM 証明書の検証用 CNAME レコード
- DKIM 用の CNAME レコード
実行中タスクでのコマンド実行
この手順はただマストドンを利用するだけであれば必要ありませんが、実行しておきます。
作成された ECS クラスターのうち、Web サービスの機能を司るタスクの ID を確認しておきます。タスク定義名から判別できます。
任意の場所から AWS CLI でコマンド実行し、タスク上でインタラクティブに操作できるようにします。AWS CLI を実行する環境にはセッションマネージャープラグインが必要となるのでインストールしておきます。
今回わたしは以下バージョンの AWS CLI で操作しました。
$ aws --version aws-cli/1.19.112 Python/2.7.18 Linux/4.14.296-222.539.amzn2.x86_64 botocore/1.20.112
先ほど確認したタスクを指定してaws ecs execute-command
を実行します。セッションが開始されます。
$ aws ecs execute-command --cluster mastodon-on-aws-Cluster-1TAWY8XYNP74M-Cluster-K6QdpvQI6OsC --container app --command /bin/bash --interactive --task 22f9c690eebe439bb46b282c4e7f4072 The Session Manager plugin was installed successfully. Use the AWS CLI to start a session. Starting session with SessionId: ecs-execute-command-0d6831467b7ed4a07 root@ip-10-0-12-21:/opt/mastodon#
せっかくなので環境変数を確認してみます。いろいろ設定されていますね。
root@ip-10-0-12-21:/opt/mastodon# env SMTP_SERVER=email-smtp.ap-northeast-1.amazonaws.com AWS_EXECUTION_ENV=AWS_ECS_FARGATE AWS_CONTAINER_CREDENTIALS_RELATIVE_URI=/v2/credentials/04ba18d7-d81d-4694-b346-19f49074701c HOSTNAME=ip-10-0-12-21.ap-northeast-1.compute.internal OTP_SECRET=b57dbb0d45(略) REDIS_HOST=mar1t1gnapu19fe2.ltydwh.ng.0001.apne1.cache.amazonaws.com AWS_DEFAULT_REGION=ap-northeast-1 AWS_REGION=ap-northeast-1 PWD=/opt/mastodon ECS_CONTAINER_METADATA_URI_V4=http://169.254.170.2/v4/22f9c690eebe439bb46b282c4e7f4072-527074092 S3_REGION=ap-northeast-1 NODE_ENV=production S3_ENABLED=true DB_USER=mastodon HOME=/root LANG=C.UTF-8 LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=00:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.zst=01;31:*.tzst=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.wim=01;31:*.swm=01;31:*.dwm=01;31:*.esd=01;31:*.jpg=01;35:*.jpeg=01;35:*.mjpg=01;35:*.mjpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.oga=00;36:*.opus=00;36:*.spx=00;36:*.xspf=00;36: RAILS_SERVE_STATIC_FILES=true BIND=0.0.0.0 SMTP_PORT=587 ECS_AGENT_URI=http://169.254.170.2/api/22f9c690eebe439bb46b282c4e7f4072-527074092 SMTP_LOGIN=AKIAQ3BIIH73QIRS4OFV TERM=xterm-256color DB_HOST=mastodon-on-aws-database-1hvnywla4523y-dbinstance-yyony6qlma0e.cluh7scr0und.ap-northeast-1.rds.amazonaws.com ECS_CONTAINER_METADATA_URI=http://169.254.170.2/v3/22f9c690eebe439bb46b282c4e7f4072-527074092 SHLVL=1 LOCAL_DOMAIN=chibayuki.tk SMTP_PASSWORD=BLlVP53XenqS61eVvc(略) SECRET_KEY_BASE=61eb113d47e63a6(略) DB_NAME=mastodon [email protected] ES_ENABLED=false PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/ruby/bin:/opt/node/bin:/opt/mastodon/bin VAPID_PRIVATE_KEY=LbK_BuFk-tNygXMn(略) RAILS_ENV=production S3_BUCKET=mastodon-on-aws-bucket-bl1indbjqejf-bucket-pbrnb0vbotui DB_PASS={SLgEP;gi4O$(略) VAPID_PUBLIC_KEY=BK_JVeBmBWJfR(略) _=/usr/bin/env
tootctl というマストドンの管理用のツールが使用できるようになっているようです。最低限バージョンの確認とロールの変更をやってみました。(説明の順番が前後しますが、ロールの変更は一度サインアップしてからそのユーザー名を指定して行っています。)
root@ip-10-0-12-21:/opt/mastodon# which tootctl /opt/mastodon/bin/tootctl root@ip-10-0-12-21:/opt/mastodon# RAILS_ENV=production bundle exec /opt/mastodon/bin/tootctl --version 4.0.2 # Chibayukiというユーザー名でサインアップした後に実行 root@ip-10-0-12-21:/opt/mastodon# RAILS_ENV=production bundle exec /opt/mastodon/bin/tootctl accounts modify Chibayuki --role Owner OK
(わたしが試した際は tootctl は実行するとほとんどkilled
となり、たまに成功する、という感じでした。スペックを上げれば解消するのか?など分かっていないです。)
マストドンを触ってみる
指定したドメイン名の Zone Apex であるChikayuki.tk
にアクセスすることでマストドンのエクスプローラー画面が表示されました。右下の「アカウント作成」からサインアップしてみます。
ユーザー名、ID、メールアドレス、パスワード(確認用含む)を入力し「登録する」を押下します。
メールが送信されました。
わたしの場合は迷惑メールに振り分けられていましたが、メールから確認を実行します。
ログイン画面で必要情報を入力したら、ようやくマストドンにログインできました。あとは好きなように使いましょう。
とりあえず toot(Twitterにおけるツイート)なるものをしてみました。楽しい。
▲ パオーン?
ユーザー設定からいろいろな管理項目も触れました。環境の情報が覗けて面白いですね。
「Sidekiq」という項目を選んでみるとこのような画面に。今回の構成では Sidekiq 専用の ECS タスクが動いています。
ひとまず動くところまで確認できたので満足しました。
マストドンインスタンスのお片付け
環境が不要な場合には忘れずに削除しましょう。
基本的には CloudFormation スタックを削除するだけですが、Route53 パブリックホストゾーンはレコードセットを削除してからでないと消せません。先にレコードセットを手で消してからスタックを削除するか、スタック削除後に残ったものを手で消しましょう。
今回わたしが試した範囲では S3 バケットにオブジェクトが格納されることはありませんでしたが(画像をアップロードすると S3 バケットに格納される?)、S3 バケットも同様に中身を消してから出ないと削除できないので注意しましょう。
終わりに
マストドンインスタンスを AWS でホストする構成を試してみました。
単純にホストするだけであれば EC2 1 台でもできますが、なるべくマネージドサービスを利用するように検討された構成が面白いですね。しかもほとんど準備された CloudFormation テンプレートをデプロイするだけ、というのが嬉しいところです。(逆に考えるとコンテナの中身を理解せずとも動かせてしまう、ということでもありますが……)
ちょっとどんなもんか試してみたい、という方はコストに気をつけながら試してみてはいかがでしょうか。
以上、 チバユキ (@batchicchi) がお送りしました。
おまけ:CloudFormation のあれこれ
ブログの中に載せるとテンポが悪くなりそうだったので、作成されるリソースの中身と実行時のイベントを末尾に載せます。
今回使用したのは以下バージョンのテンプレートです。
https://s3.eu-central-1.amazonaws.com/mastodon-on-aws-cloudformation/v0.7.0/quickstart.yml
CloudFormation テンプレートに含まれるリソース
テンプレートに含まれるリソースの一覧です。タイプがAWS::CloudFormation::Stack
となっているものはネストされておりさらに別の CloudFormation スタックが呼び出されます。
論理 ID | タイプ |
---|---|
Alb | AWS::CloudFormation::Stack |
AlbListener | AWS::CloudFormation::Stack |
Alerting | AWS::CloudFormation::Stack |
Bucket | AWS::CloudFormation::Stack |
Cache | AWS::CloudFormation::Stack |
Certificate | AWS::CloudFormation::Stack |
ClientSg | AWS::CloudFormation::Stack |
Cluster | AWS::CloudFormation::Stack |
Database | AWS::CloudFormation::Stack |
Dkim1Record | AWS::Route53::RecordSet |
Dkim2Record | AWS::Route53::RecordSet |
Dkim3Record | AWS::Route53::RecordSet |
EmailIdentity | AWS::SES::EmailIdentity |
EmailUser | AWS::IAM::User |
EmailUserAccessKey | AWS::IAM::AccessKey |
HostedZone | AWS::CloudFormation::Stack |
Key | AWS::CloudFormation::Stack |
LambdaLogGroup | AWS::Logs::LogGroup |
LambdaPolicy | AWS::IAM::Policy |
LambdaRole | AWS::IAM::Role |
Record | AWS::CloudFormation::Stack |
S3Policy | AWS::IAM::ManagedPolicy |
Secret | AWS::CloudFormation::Stack |
SidekiqService | AWS::CloudFormation::Stack |
SmtpPasswordConverter | Custom::SmtpPasswordConverter |
SmtpPasswordConverterLamdaFunction | AWS::Lambda::Function |
StreamingApiService | AWS::CloudFormation::Stack |
StreamingApiTarget | AWS::CloudFormation::Stack |
Target | AWS::CloudFormation::Stack |
Vpc | AWS::CloudFormation::Stack |
WebService | AWS::CloudFormation::Stack |
ネストされた CloudFormation テンプレートに含まれるリソース
ネストされた CloudFormation テンプレートに含まれるリソースは以下のとおりです。CloudWatch アラームがかなりの数用意されていることが分かります。
論理 ID | 作成されるリソース |
---|---|
Alb | CloudWatchアラーム*2、ALB、SecuriryGroup |
AlbListener | リスナー、SecuriryGroupインバウンドルール |
Alerting | SNSトピック*2、トピックポリシー、CloudWatchアラーム |
Bucket | S3バケット、バケットポリシー |
Cache | ElastiCacheクラスター、パラメーターグループ、サブネットグループ、SecuriryGroup、CloudWatchアラーム*8 |
Certificate | ACM証明書 |
ClientSg | SecuriryGroup |
Cluster | ECSクラスター |
Database | さらにネストされた上で(DBインスタンス(PostgreSQL)、DBサブネットグループ、SecuriryGroup、イベントサブスクリプション、CloudWatchアラーム*7) |
HostedZone | ホストゾーン |
Key | KMSキー、エイリアス、Eventsルール |
Record | Route53レコードセット |
Secret | シークレット |
SidekiqService | ECSサービス、タスク定義、IAMロール*2、Eventsルール、SecuriryGroup、ロググループ、CloudWatchアラーム |
StreamingApiService | ECSサービス、タスク定義、IAMロール*2、Eventsルール、SecuriryGroup、ロググループ、CloudWatchアラーム |
StreamingApiTarget | ターゲットグループ、リスナールール、SecuriryGroup、CloudWatchアラーム*2 |
Target | ターゲットグループ、リスナールール、SecuriryGroup、CloudWatchアラーム*2 |
Vpc | ※後述 |
WebService | ECSサービス、タスク定義、IAMロール*2、Eventsルール、SecuriryGroup、ロググループ、CloudWatchアラーム |
Vpc
スタックの中ではリソースもあればさらにネストされたスタックもあります。このような内訳になっています。
論理 ID | さらにネスト | 作成されるリソース |
---|---|---|
FlowLogModule | ● | フローログ、ロググループ、IAMロール |
SubnetAPrivate | ● | サブネット、NACL、NACLルール、ルートテーブル、NACL割り当て、ルートテーブル割り当て |
SubnetAPublic | ● | 同上 |
SubnetBPrivate | ● | 同上 |
SubnetBPublic | ● | 同上 |
VPCEndpointDynamoDB | VPCエンドポイント | |
VPCEndpointS3 | VPCエンドポイント | |
VpcPlain | ● | VPC、インターネットゲートウェイ、ゲートウェイ割り当て |
CloudFormation スタック作成時のイベント
時系列に並べたものが以下です。リソースごとの所要時間や全体の流れをイメージしたい方はどうぞ。
タイムスタンプ | 論理 ID | ステータス | 状況の理由 |
---|---|---|---|
2022-11-23 17:51:41 UTC+0900 | mastodon-on-aws | CREATE_IN_PROGRESS | User Initiated |
2022-11-23 17:51:44 UTC+0900 | EmailIdentity | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:45 UTC+0900 | EmailUser | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:45 UTC+0900 | LambdaRole | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:45 UTC+0900 | Alerting | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:45 UTC+0900 | HostedZone | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:45 UTC+0900 | Bucket | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:45 UTC+0900 | EmailUser | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:45 UTC+0900 | Cluster | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:46 UTC+0900 | HostedZone | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:46 UTC+0900 | Cluster | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:46 UTC+0900 | LambdaRole | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:47 UTC+0900 | Bucket | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:47 UTC+0900 | EmailIdentity | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:47 UTC+0900 | Alerting | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:51:57 UTC+0900 | Alerting | CREATE_COMPLETE | - |
2022-11-23 17:51:59 UTC+0900 | Key | CREATE_IN_PROGRESS | - |
2022-11-23 17:51:59 UTC+0900 | Vpc | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:01 UTC+0900 | Key | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:01 UTC+0900 | Vpc | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:08 UTC+0900 | Cluster | CREATE_COMPLETE | - |
2022-11-23 17:52:21 UTC+0900 | EmailUser | CREATE_COMPLETE | - |
2022-11-23 17:52:21 UTC+0900 | Bucket | CREATE_COMPLETE | - |
2022-11-23 17:52:22 UTC+0900 | S3Policy | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:23 UTC+0900 | LambdaRole | CREATE_COMPLETE | - |
2022-11-23 17:52:23 UTC+0900 | S3Policy | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:23 UTC+0900 | EmailUserAccessKey | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:24 UTC+0900 | EmailUserAccessKey | CREATE_COMPLETE | - |
2022-11-23 17:52:24 UTC+0900 | EmailUserAccessKey | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:25 UTC+0900 | SmtpPasswordConverterLamdaFunction | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:28 UTC+0900 | SmtpPasswordConverterLamdaFunction | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:33 UTC+0900 | HostedZone | CREATE_COMPLETE | - |
2022-11-23 17:52:34 UTC+0900 | SmtpPasswordConverterLamdaFunction | CREATE_COMPLETE | - |
2022-11-23 17:52:35 UTC+0900 | Certificate | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:36 UTC+0900 | LambdaLogGroup | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:37 UTC+0900 | LambdaLogGroup | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:37 UTC+0900 | Certificate | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:52:38 UTC+0900 | LambdaLogGroup | CREATE_COMPLETE | - |
2022-11-23 17:52:40 UTC+0900 | LambdaPolicy | CREATE_IN_PROGRESS | - |
2022-11-23 17:52:41 UTC+0900 | LambdaPolicy | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:53:00 UTC+0900 | S3Policy | CREATE_COMPLETE | - |
2022-11-23 17:53:18 UTC+0900 | LambdaPolicy | CREATE_COMPLETE | - |
2022-11-23 17:53:20 UTC+0900 | SmtpPasswordConverter | CREATE_IN_PROGRESS | - |
2022-11-23 17:53:22 UTC+0900 | SmtpPasswordConverter | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:53:23 UTC+0900 | SmtpPasswordConverter | CREATE_COMPLETE | - |
2022-11-23 17:53:53 UTC+0900 | EmailIdentity | CREATE_COMPLETE | - |
2022-11-23 17:54:05 UTC+0900 | Dkim2Record | CREATE_IN_PROGRESS | - |
2022-11-23 17:54:05 UTC+0900 | Dkim3Record | CREATE_IN_PROGRESS | - |
2022-11-23 17:54:05 UTC+0900 | Dkim1Record | CREATE_IN_PROGRESS | - |
2022-11-23 17:54:07 UTC+0900 | Dkim2Record | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:54:07 UTC+0900 | Dkim1Record | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:54:07 UTC+0900 | Dkim3Record | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:54:15 UTC+0900 | Vpc | CREATE_COMPLETE | - |
2022-11-23 17:54:17 UTC+0900 | ClientSg | CREATE_IN_PROGRESS | - |
2022-11-23 17:54:17 UTC+0900 | Alb | CREATE_IN_PROGRESS | - |
2022-11-23 17:54:19 UTC+0900 | ClientSg | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:54:19 UTC+0900 | Alb | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:54:30 UTC+0900 | ClientSg | CREATE_COMPLETE | - |
2022-11-23 17:54:39 UTC+0900 | Dkim3Record | CREATE_COMPLETE | - |
2022-11-23 17:54:40 UTC+0900 | Dkim2Record | CREATE_COMPLETE | - |
2022-11-23 17:54:40 UTC+0900 | Dkim1Record | CREATE_COMPLETE | - |
2022-11-23 17:55:33 UTC+0900 | Key | CREATE_COMPLETE | - |
2022-11-23 17:55:35 UTC+0900 | Secret | CREATE_IN_PROGRESS | - |
2022-11-23 17:55:35 UTC+0900 | Cache | CREATE_IN_PROGRESS | - |
2022-11-23 17:55:36 UTC+0900 | Secret | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:55:36 UTC+0900 | Cache | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:55:47 UTC+0900 | Secret | CREATE_COMPLETE | - |
2022-11-23 17:55:49 UTC+0900 | Database | CREATE_IN_PROGRESS | - |
2022-11-23 17:55:50 UTC+0900 | Database | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:56:12 UTC+0900 | Alb | CREATE_COMPLETE | - |
2022-11-23 17:56:14 UTC+0900 | Record | CREATE_IN_PROGRESS | - |
2022-11-23 17:56:16 UTC+0900 | Record | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 17:57:03 UTC+0900 | Record | CREATE_COMPLETE | - |
2022-11-23 18:06:10 UTC+0900 | Cache | CREATE_COMPLETE | - |
2022-11-23 18:08:53 UTC+0900 | Certificate | CREATE_COMPLETE | - |
2022-11-23 18:08:55 UTC+0900 | AlbListener | CREATE_IN_PROGRESS | - |
2022-11-23 18:08:57 UTC+0900 | AlbListener | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 18:09:07 UTC+0900 | AlbListener | CREATE_COMPLETE | - |
2022-11-23 18:09:09 UTC+0900 | StreamingApiTarget | CREATE_IN_PROGRESS | - |
2022-11-23 18:09:09 UTC+0900 | Target | CREATE_IN_PROGRESS | - |
2022-11-23 18:09:11 UTC+0900 | StreamingApiTarget | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 18:09:11 UTC+0900 | Target | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 18:09:33 UTC+0900 | StreamingApiTarget | CREATE_COMPLETE | - |
2022-11-23 18:09:33 UTC+0900 | Target | CREATE_COMPLETE | - |
2022-11-23 18:10:29 UTC+0900 | Database | CREATE_COMPLETE | - |
2022-11-23 18:10:31 UTC+0900 | SidekiqService | CREATE_IN_PROGRESS | - |
2022-11-23 18:10:31 UTC+0900 | StreamingApiService | CREATE_IN_PROGRESS | - |
2022-11-23 18:10:31 UTC+0900 | WebService | CREATE_IN_PROGRESS | - |
2022-11-23 18:10:34 UTC+0900 | WebService | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 18:10:34 UTC+0900 | StreamingApiService | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 18:10:34 UTC+0900 | SidekiqService | CREATE_IN_PROGRESS | Resource creation Initiated |
2022-11-23 18:14:05 UTC+0900 | WebService | CREATE_COMPLETE | - |
2022-11-23 18:14:05 UTC+0900 | StreamingApiService | CREATE_COMPLETE | - |
2022-11-23 18:14:05 UTC+0900 | SidekiqService | CREATE_COMPLETE | - |
2022-11-23 18:14:06 UTC+0900 | mastodon-on-aws | CREATE_COMPLETE | - |
人が作った壮大な CloudFormation テンプレートを流すときは興奮しますね。